/*
 * ServerSocket.h
 *
 * Author: Grupo Nro.
 */

#ifndef SERVERSOCKET_H_
#define SERVERSOCKET_H_

#include <stdio.h>
#include <stdlib.h>
#include <string>
#include <cstring>
#include <iostream>
#include "ComunicacionException.h"

//Socket
#include <netdb.h>
#include <arpa/inet.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <unistd.h>

#define CANT_CONEXIONES 10

using std::string;
using std::cerr;
using std::endl;

class ServerSocket {
private:
	int puerto;
	int sockfd;
	void crearSocket();
	void bindear();
	void escucharConexiones();

public:
	ServerSocket(int puerto);
	virtual ~ServerSocket();
	int getSockfd();
	void conectar();
	int aceptarConexion();
	static void shutdownConexion(int & sockfd);
	static void matarConexion(int & sockfd);
};

#endif /* SERVERSOCKET_H_ */
